#ifndef GML__CONSTRUCT_H
#define GML__CONSTRUCT_H

#include "config.h"

void construct(int *_pointer, int _value);

void destruct(int *_pointer);

#define destructIn(_T, _first, _last) ({ \
    defineArg(_first, __first); \
    defineArg(_last, __last); \
    for (; _T##Func(IteratorNotEqualTo)(&__first, &__last); _T##Func(IteratorIncreasePrefix)(&__first)) { \
        destruct(_T##Func(IteratorIndirect)(&__first)); \
    } \
})

#endif // GML__CONSTRUCT_H
